package com.ruoyi.user.service;

import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.common.core.domain.model.LoginAppUser;
import com.ruoyi.user.domain.AppUserAccount;
import com.ruoyi.user.domain.dto.AppUserAccountAddDTO;
import com.ruoyi.user.domain.dto.AppUserAccountPageDTO;
import com.ruoyi.user.domain.dto.AppUserAccountUpdateDTO;

import java.util.List;

/**
 * 用户账号Service接口
 *
 * @author ghostmen
 * @date 2024-11-02
 */
public interface IAppUserAccountService {
    /**
     * 查询用户账号
     *
     * @param accountId 用户账号主键
     * @return 用户账号
     */
    public AppUserAccount selectAppUserAccountByAccountId(Long accountId);

    /**
     * 查询用户账号列表
     *
     * @param pageDTO 登录用户
     * @return 用户账号集合
     */
    public List<AppUserAccount> selectAppUserAccountList(AppUserAccountPageDTO pageDTO);

    /**
     * 用户游戏账号下拉列表
     *
     * @param userId 用户id
     * @return 用户账号集合
     */
    List<AppUserAccount> userAccountList(Long userId);

    /**
     * 新增用户账号
     *
     * @param addDTO 用户账号
     * @return 结果
     */
    public int insertAppUserAccount(AppUser appUser, AppUserAccountAddDTO addDTO);

    /**
     * 修改用户账号
     *
     * @param updateDTO 用户账号
     * @return 结果
     */
    public int updateAppUserAccount(AppUser appUser, AppUserAccountUpdateDTO updateDTO);

    /**
     * 批量删除用户账号
     *
     * @param accountIds 需要删除的用户账号主键集合
     * @return 结果
     */
    public int deleteAppUserAccountByAccountIds(Long[] accountIds);

    /**
     * 删除用户账号信息
     *
     * @param accountId 用户账号主键
     * @return 结果
     */
    public int deleteAppUserAccountByAccountId(Long accountId);

    /**
     * 根据userId及账户id获取游戏账户明细
     *
     * @param userId
     * @param accountId
     * @return
     */
    AppUserAccount getUserAccountByUserIdAndAccountId(Long userId, Long accountId);


}
